草庐IT

OpenGL 波浪特效

全部标签

c++ - 使用波浪号获取 int 的 MAX 值

我尝试使用代字号获取int的MAX值。但输出不是我所期望的。当我运行这个时:#include#includeintmain(){inta=0;a=~a;printf("\nMaxvalue:%d",-a);printf("\nMaxvalue:%d",INT_MAX);return0;}我得到输出:最大值:1最大值:2147483647我想,(例如)如果我在RAM中有0000(我知道第一位显示的是数字pozitiv或negativ)。在~0000=>1111和-(1111)=>0111之后,我会得到MAX值。 最佳答案 您有一个32

c++ - 在 OpenGl 中导入和显示 .fbx 文件

我一直在尝试使用FBXSDK.Untill导入和显示fbx文件。我设法加载了文件,但卡在了必须显示文件的部分。问题:这些指标到底是什么?我应该如何显示顶点?这是我制作的类(class):3dModelBasicStructs.hstructvertex{floatx,y,z;};structtexturecoords{floata,b;};structpoligon{inta,b,c;};模型.h#ifndefMODEL_H#defineMODEL_H#defineFBXSDK_NEW_API#defineMAX_VERTICES80000#defineMAX_POLIGONS8000

c++ - 在 OpenGL C++ 中检测鼠标点击

我是OpenGL的初学者,我正在尝试创建一个游戏,其中我有一个原始图像作为背景。当游戏开始时,我会显示该图像,我希望能够单击它并在之后显示另一个图像。我尝试使用glutMouseFunc函数,但是当我尝试运行该程序时,我收到一条消息,提示该程序已停止工作。以下是我的部分代码:我有一个全局变量onMouse;如果我单击鼠标按钮,变量的值为1,如果它的值为1,我会尝试加载第二张图像。intonMouse;voidmouseClicks(intbutton,intstate,intx,inty){if(button==GLUT_LEFT_BUTTON&&state==GLUT_DOWN){o

c++ - 将 OpenGL 用于 2D

我已经开始使用OpenGL并学习了模型、View和投影矩阵。根据我的理解,投影矩阵只需要将3D实体投影到2D表面(屏幕)上。所以如果我想创建一个2D游戏,我什至需要弄乱投影矩阵吗? 最佳答案 使用投影矩阵定义坐标系仍然不错。默认情况下,无论分辨率和纵横比如何,都会在[-1,1]之间为x和y定义一个窗口。如果您不使用投影矩阵解决此问题,则必须以其他方式进行补偿。您希望正方形呈现为正方形,而不是矩形。根据您的GL版本,您可以调用glOrtho、手动构造它或使用glm::ortho。根据我的经验,在默认的[-1,1]系统上工作是非常不切实

c++ - OpenGL 缓冲区的状态如何在程序运行之间保持不变?

我正在编写一个绘制到辅助缓冲区的OpenGL程序,然后辅助缓冲区的内容在被GL_RETURN-ed到后台缓冲区(本质上是合成到屏幕)之前累积到累积缓冲区。简而言之,我正在做一种运动模糊。然而奇怪的是,当我重新编译并重新运行我的程序时,我看到了先前程序运行时辅助/累积缓冲区的内容。这根本不符合逻辑。我是不是误会了什么,当程序重新启动时,OpenGL的状态不应该完全重置吗?我正在GeForceGo6150上的GentooLinuxnVidia驱动程序195.36.31中编写SDL/OpenGL程序。 最佳答案 否-您的GPU没有理由清除

c++ - 计算每个顶点的法线 OpenGL

我正在尝试计算每个顶点的法线。但是我做错了什么。当我运行代码时,我看到了:这是我的代码,注意vertex1是当前顶点之前的顶点,vertex2是当前顶点之后的顶点。for(intj=0;j0)){vertex1=vertexes[meshes[t].face[i].vertex[j+1]]-vertexes[meshes[t].face[i].vertex[j]];vertex2=vertexes[meshes[t].face[i].vertex[j-1]]-vertexes[meshes[t].face[i].vertex[j]];}elseif(j0){vertex1=vertex

c++ - 如何在 OpenGL 中设置顶点的不透明度?

以下代码片段绘制了一个灰色方block。glColor3b(50,50,50);glBegin(GL_QUADS);glVertex3f(-1.0,+1.0,0.0);//topleftglVertex3f(-1.0,-1.0,0.0);//bottomleftglVertex3f(+1.0,-1.0,0.0);//bottomrightglVertex3f(+1.0,+1.0,0.0);//toprightglEnd();在我的应用程序中,这个正方形后面有一个彩色立方体。我应该使用什么函数使正方形(并且只有这个正方形)不透明? 最佳答案

c++ - 三角扇有多少个顶点用opengl

我正在学习openGL,我遇到过使用顶点缓冲对象的三角扇。如果给定要渲染的顶点数组,openGL如何决定必须使用多少顶点来构造三角形扇形。似乎可以使用任意数量的顶点。 最佳答案 这可以很容易地通过比较三角带和三角扇来解释。三角带您可能知道,三角形带是一组共享顶点的连接三角形,这样可以更有效地使用内存。(我们节省了内存,因为我们不存储所有重复的顶点)三角带示例三角扇另一方面,我们有一个三角扇,这也是一组相连的三角形。尽管所有这些三角形都有一个共同的顶点,即中心顶点。(第一个顶点总是中心)话虽如此,我们可以拍摄上面的相同图像并更改顶点的

c++ - OpenGL 检查是否启用或禁用了某些东西

是否有类似isEnabled(GL_LIGHTING);的函数或任何检测是否启用或禁用的方法? 最佳答案 对于全局照明,怎么样:glIsEnabled(GL_LIGHTING) 关于c++-OpenGL检查是否启用或禁用了某些东西,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14617630/

c++ - 如何在 c++/opengl 中使用 glm 常量

我只使用OpenGL编程并使用GLM(OpenGLMathematics)。我发现GLM中有一个名为“GLM_GTC_constants”的扩展,它应该提供内置常量列表。这是函数头在constants.hpp中的样子:///Returnthepiconstant.///@seegtc_constantstemplateGLM_FUNC_DECLGLM_CONSTEXPRgenTypepi();函数本身看起来像这样(constants.inl):templateGLM_FUNC_QUALIFIERGLM_CONSTEXPRgenTypepi(){returngenType(3.14159